メインコンテンツまでスキップ

Unity SDK

概要

WebAR³ VPS の Unity SDK を使うと、準備済みの VPS マップ内でユーザーをローカライズし、ARKit や ARCore 対応デバイスにセンチ単位の精度でコンテンツを配置できます。Immersal ドキュメントと同じ流れで、前提条件の確認からインストール、シーン設定、ローカライズ開始までをガイドします。

必要条件

  • Unity 2022.3 LTS 以降
  • ARKit または ARCore に対応したテスト端末
  • サンプルプロジェクトをクローンする場合は Git LFS(大容量アセットを取得するため)

インストール手順

サンプルプロジェクトをクローン

git clone https://github.com/WebAR-Studio/was-vps-unity.git

Unity 2022.3+ でプロジェクトを開くと、Assets/Scenes に参考用シーンが含まれています。

Package Manager から追加

  1. Window → Package Manager を開きます。
  2. + → Add package from Git URL… を選択します。
  3. https://github.com/WebAR-Studio/was-vps-unity.git?path=/Assets を貼り付けて追加します。

Unity は Packages/was-vps-unity に SDK を配置します。

プロジェクト設定

  1. AR SessionAR Session Origin を含む AR Foundation 対応シーンを用意します。
  2. 空の GameObject に VPSLocalisationService を追加します(ローカライズループを処理)。
  3. インスペクターで以下を割り当てます。
    • AR Session
    • AR Session Origin
    • 必要に応じて AR カメラや UI(サンプルを参照)
  4. VPS の API Key と少なくとも 1 つの Location ID を入力します。

    APIキーが必要ですか?space.web-ar.studio で取得するか、support@webar3.com / support@web-ar.studio へお問い合わせください。

  5. (任意)デバッグ時は Save Images LocallySave Logs In File を有効化します。

ローカライズの開始

SDK はシンプルな API を備えています。以下のスクリプトを追加し、VPSLocalisationService への参照をインスペクターで設定してください。

using UnityEngine;
using WASVPS;

public class VPSBootstrap : MonoBehaviour
{
[SerializeField] private VPSLocalisationService vpsService;

private void Start()
{
vpsService.OnPositionUpdated += HandlePositionUpdated;
vpsService.OnErrorHappend += HandleError;

var settings = new SettingsWASVPS(
new[] { "your-location-id" },
failsCountToReset: 5
);

settings.ApiKey = "your-api-key";
settings.LocalizationTimeout = 2.0f;

vpsService.StartVPS(settings);
}

private void HandlePositionUpdated(LocationState state)
{
Debug.Log($"Localized at {state.Localisation.VpsPosition}");
}

private void HandleError(ErrorInfo error)
{
Debug.LogError(error.LogDescription());
}
}

インスペクター設定

プロパティ役割既定値
Start On Awakeシーン読み込み時に自動でローカライズを開始false
Force Mock In EditorUnity エディターでモックプロバイダーを強制使用true
Send GPS各リクエストに GPS データを添付false
Fails Count To Reset連続失敗回数が閾値に達するとセッションをリセット5
Save Images Locallyデバッグ用に送信フレームを保存false

デバッグとテスト

  • Force Mock In Editor を有効にし、付属のモックテクスチャでデバイスなしでも検証できます。
  • VPSLogger.SetLogLevel(LogLevel.VERBOSE) を呼び出して HTTP リクエストやレスポンス、エラーを詳細に確認します。
  • ローカライズが成功しない場合は、API キーと Location ID が公開済みマップと一致しているか確認してください。

次のステップ

  • サンプルプロジェクト内の Assets/Scenes/TestScene.unityAssets/Scripts/ExampleVPS.cs を参考にしてください。
  • 取得した VPS のポーズを活用し、アンカー作成やコンテンツ配置、UI 更新に活かしましょう。